(deftemplate multimeIntregi (slot nume) (multislot elemente) (slot submultime (default FALSE)))

(deffacts myFacts
    (multimeIntregi (nume A) (elemente 1 2 3 4 5))
    (multimeIntregi (nume B) (elemente 1 2 3) (submultime A))
)

(reset)
(defrule afisareElemente
    (multimeIntregi {submultime == FALSE} (nume ?n) (elemente $?e))
    =>
    (printout t "Elementele multimii " ?n " sunt: " ?e crlf)
)
(defrule afisareElementeS
    (multimeIntregi {submultime != FALSE} (nume ?n) (elemente $?e) (submultime ?s))
    =>
    (printout t "Elementele multimii " ?n " sunt: " ?e crlf)
    (printout t ?n " este submultime a multimii " ?s "." crlf)
)
(run)
